﻿using Admin.Core.Common.Input;
using Admin.Core.Common.Output;
using Admin.Core.Model.Warehouse;
using Admin.Core.Service.Warehouse.XbcTypeS.Input;
using Admin.Core.Service.Warehouse.XbcTypeS.Output;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace Admin.Core.Service.Warehouse.XbcTypeS
{
    public interface IXbcTypeService
    {

        /// <summary>
        /// 获取物料类型的下拉
        /// </summary>
        /// <returns></returns>
        Task<IResponseOutput> GetXbcList();

        /// <summary>
        /// 获取物料类型
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<IResponseOutput> GetAsync(long id);

        /// <summary>
        /// 查看物料类型列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<IResponseOutput> PageAsync(PageInput<XbcType> input);

        /// <summary>
        /// 获取物料配置
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<IResponseOutput> GetTypeConfAsync(long id);
        /// <summary>
        /// 插入物料类别
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<IResponseOutput> AddAsync(XbcTypeAddInput input);

        /// <summary>
        /// 修改物料类别
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<IResponseOutput> UpdateAsync(XbcTypeUpdateInput input);


        /// <summary>
        /// 软删除物料类型
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        Task<IResponseOutput> SoftDeleteAsync(long id);

        /// <summary>
        /// 批量软删除物料类型
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        Task<IResponseOutput> BatchSoftDeleteAsync(long[] ids);

    }
}
